/**
 * <h3>ThemeMapper</h3>
 * <p> 大赛信息数据访问层接口 </p>
 *
 * <h3>功能描述</h3>
 * <p> 定义对数据库表 theme_competition 的基本操作方法，包括增删改查 </p>
 * <p> 配合 MyBatis Plus 实现 ORM 映射与持久化操作 </p>
 *
 * <h3>元数据</h3>
 * <ul>
 *     <li> 作者：郭强 </li>
 *     <li> 创建日期：2025年05月18日 14:20:15 </li>
 * </ul>
 *
 * <h3>其他信息</h3>
 * <ul>
 *     <li> 继承自：{@link BaseMapper<ThemeDTO>} </li>
 *     <li> 示例代码：{@code List<Theme> list = themeMapper.selectThemeList(dto);} </li>
 * </ul>
 *
 * @apiNote 方法签名应与 XML 文件中的 id 保持一致，以确保正确绑定
 * @implSpec 使用泛型类型 ThemeDTO 进行实体映射
 * @since v1.0.0.0
 */
package com.dnndo.system.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dnndo.system.domain.Theme;
import com.dnndo.system.domain.dto.ThemeDTO;
import com.dnndo.system.mapper.ThemeMapper;
import com.dnndo.system.service.ThemeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 大赛服务实现类
 */
@Service
public class ThemeServiceImpl extends ServiceImpl<ThemeMapper, ThemeDTO> implements ThemeService {

    private final ThemeMapper themeMapper;

    @Autowired
    public ThemeServiceImpl(ThemeMapper themeMapper) {
        this.themeMapper = themeMapper;
    }

    @Override
    public List<Theme> selectThemeList(ThemeDTO dto) {
        return themeMapper.selectThemeList(dto);
    }

    @Override
    public ThemeDTO selectThemeById(Long themeId) {
        return themeMapper.selectThemeListById(themeId);
    }

    @Override
    public int insertTheme(ThemeDTO dto) {
        return themeMapper.insertTheme(dto);
    }

    @Override
    public int updateThemeById(ThemeDTO dto) {
        return themeMapper.updateThemeById(dto);
    }

    @Override
    public int deleteThemeById(Integer themeId) {
        return themeMapper.deleteThemeById(themeId);
    }
}
